import { useState } from 'react';

// 高阶组件，参数一个准备被增强的组件
export const WithCounter = (OriginalComponent: any) => {
  // 返回一个新的组件，包裹传入的组件
  const NewComponent = () => {
    // 高阶组件内部的增强处理
    // 通用逻辑的处理
    const [count, setCount] = useState(0);
    const incrementCount = () => {
      setCount(count + 1);
    };
    return (
      <>
        <h1>我是公用的内容</h1>
        <OriginalComponent count={count} incrementCount={incrementCount} />
      </>
    );
  };
  // 返回新的组件
  return NewComponent;
};
